/*
 * Byte.h
 *
 *  Created on: 07/06/2014
 *      Author: manuel
 */

#ifndef BYTE_H_
#define BYTE_H_

#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <bitset>

class Byte {
public:
	Byte();
	Byte(std::string bits);
	virtual ~Byte();

	bool cargarDesde(std::fstream& archivo);
	bool escribirEn(std::fstream& archivo);

	int push_bits(std::string bits); //devuelve 0 si pudo meter todos, sino devuelve la cantidad maxima
									  // de bits que pueden entrar
	bool pop_bits(std::string &bits, unsigned short cantidad);

	void resetear();
	int bitsLibres();

private:
	std::bitset<8> bits;
	unsigned short posicion;
	bool lleno;
};

#endif /* BYTE_H_ */
